package com.alibaba.citrus.ots.platform.enhance.functions.diff.common.template;

import com.alibaba.citrus.ots.platform.enhance.repository.model.diff.common.FieldLineDTO;
import com.alibaba.citrus.ots.platform.enhance.repository.model.diff.common.OrderStatusFieldDTO;
import com.alibaba.lattice2.epoch.sdk.model.Result;

import java.util.Map;
import java.util.Set;

public interface Check {
    /**
     * 标准模板校验
     * @param standardFieldSet 标准字段集合,
     * @param map 数据
     * @param ignoreFieldSet 标准字段中忽略校验的字段集合
     * @return 校验结果
     */
    Result<String> check(Set<String> standardFieldSet, Map<String, FieldLineDTO> map, Set<String> ignoreFieldSet);


    Result<String> checkForStatus(Set<OrderStatusFieldDTO> standardFieldSet, Object obj, Class<?> clazz, Set<String> ignoreFieldSet);
}
